Skip to content

Conversation

@folkertdev
Copy link
Contributor

ZuseZ4 and others added 24 commits December 9, 2025 10:52
This allows the `types` macro to easily implement `From<Simd<T, N>>` and `Into<Simd<T, N>>`
…oid-unsafe-tests

Use a generic type to implement SIMD types in `core_arch::simd` and avoid `unsafe fn` in more tests
For other targets we don't have such instances. We specifically decided agains implementing arithmetic operators on these low-level vector types
The inline(always) attribute is now applied to the call site when a
function has target features enabled so that it can determine that the
call is safe to inline.
thread, grid, and block dim/idx can only return non-negative values
remove `impl Neg` on s390x/powerpc vector types
Mark the neon intrinsics as inline(always).
Because `qemu` does not support these (yet), I haven't added any runtime tests
This updates the rust-version file to 873d468.
@rustbot
Copy link
Collaborator

rustbot commented Jan 26, 2026

stdarch is developed in its own repository. If possible, consider making this change to rust-lang/stdarch instead.

cc @Amanieu, @sayantn

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 26, 2026
@rust-log-analyzer

This comment has been minimized.

this is required for compiling `stdarch`
@folkertdev
Copy link
Contributor Author

I've enabled #![feature(target_feature_inline_always)] now, would that need T-lang/T-libs approval? It is just a hint, so I think it's fine, but just checking.

@folkertdev
Copy link
Contributor Author

cc @davidtwco @RalfJung is #![feature(target_feature_inline_always)] ready for use in std?

@RalfJung
Copy link
Member

RalfJung commented Jan 27, 2026 via email

@folkertdev
Copy link
Contributor Author

based on #145574 (comment) I'm going to go ahead here.

@bors r+

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 27, 2026

📌 Commit fdad66a has been approved by folkertdev

It is now in the queue for this repository.

@rust-bors rust-bors bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 27, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jan 27, 2026
rust-bors bot pushed a commit that referenced this pull request Jan 27, 2026
…uwer

Rollup of 4 pull requests

Successful merges:

 - #150491 (resolve: Mark items under exported ambiguous imports as exported)
 - #151161 (std: move time implementations to `sys`)
 - #151694 (more `proc_macro` bridge cleanups)
 - #151711 (stdarch subtree update)
rust-bors bot pushed a commit that referenced this pull request Jan 27, 2026
…uwer

Rollup of 4 pull requests

Successful merges:

 - #151161 (std: move time implementations to `sys`)
 - #151694 (more `proc_macro` bridge cleanups)
 - #151711 (stdarch subtree update)
 - #150557 (Don't try to evaluate const blocks during constant promotion)
@rust-bors rust-bors bot merged commit 7d11720 into rust-lang:main Jan 27, 2026
11 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Jan 27, 2026
rust-timer added a commit that referenced this pull request Jan 27, 2026
Rollup merge of #151711 - folkertdev:stdarch-sync-2026-01-26, r=folkertdev

stdarch subtree update

Subtree update of `stdarch` to rust-lang/stdarch@9ba0a3f.

Created using https://github.com/rust-lang/josh-sync.

r? @ghost
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Jan 28, 2026
…uwer

Rollup of 4 pull requests

Successful merges:

 - rust-lang/rust#151161 (std: move time implementations to `sys`)
 - rust-lang/rust#151694 (more `proc_macro` bridge cleanups)
 - rust-lang/rust#151711 (stdarch subtree update)
 - rust-lang/rust#150557 (Don't try to evaluate const blocks during constant promotion)
@JonathanBrouwer
Copy link
Contributor

JonathanBrouwer commented Jan 28, 2026

Congrats! This PR caused a significant performance boost in rollup: #151749 (comment)
Though if this will happen more often you might want to rollup=iffy or rollup=never these subtree updates

@folkertdev
Copy link
Contributor Author

Huh, weird. I guess ripgrep might benefit from simd_splat (this PR includes the change where the platform intrinsics actually start using simd_splat instead of a weird shuffle pattern that LLVM didn't know how to optimize very well)? Otherwise most projects just don't use the stdarch intrinsics really I think.

Anyway, good point, I'll keep that in mind.

github-actions bot pushed a commit to rust-lang/rust-analyzer that referenced this pull request Jan 29, 2026
…uwer

Rollup of 4 pull requests

Successful merges:

 - rust-lang/rust#151161 (std: move time implementations to `sys`)
 - rust-lang/rust#151694 (more `proc_macro` bridge cleanups)
 - rust-lang/rust#151711 (stdarch subtree update)
 - rust-lang/rust#150557 (Don't try to evaluate const blocks during constant promotion)
@RalfJung
Copy link
Member

That benchmark is measuring compile times -- so somehow rustc itself or a crate it uses is benefiting from this.

@folkertdev
Copy link
Contributor Author

it's time spent compiling the crate right? So the compiler emitting better LLVM IR for some function could be the cause?

The compiler itself does not use the stdarch intrinsics that were touched as far as I know. We have some string/slice-related SIMD implementations but they don't appear to use splat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants